﻿#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int HPDataType;
typedef struct Heap
{
	HPDataType* a;
	int size;
	int capacity;
}HP;
//默认初始化堆
void HPInit(HP* p);
//堆的销毁
void HPDestroy(HP* p);
// 堆的插⼊
void HPPush(HP * p, HPDataType x);
//向上调整算法
void AdjustUp(HPDataType* a, int child);
// 删除堆顶的数据
void HPPop(HP* p);
//向下调整算法
void AdjustDown(HPDataType* a, int n, int parent);
// 判空
bool HPEmpty(HP* p);
//返回堆顶的元素
HPDataType HPTOP(HP* p);
////求size
//int HPSize(HP* p);